﻿using Sai.Core.Introspection;
using System.Collections.Generic;
using System.Collections.ObjectModel;

namespace Sai.Core
{
    public interface ITypeListing : IFlattenToXml
    {
        string SummaryIdentifier { get; set; }

        string SummaryName { get; set; }

        string Identifier { get; set; }

        string Name { get; set; }

        Collection<NamespaceListing> Namespaces { get; }

        IEnumerable<string> NamespaceNames();

        IEnumerable<TypeName> TypesInNamespace(string namespaceName);

        IEnumerable<TypeName> AllTypes();
    }
}
